{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 零、导入所有需要的包，方便复现"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 导入必要库包\n",
    "import pandas as pd                                                 # 数据处理\n",
    "import numpy as np                                                  # 数据处理\n",
    "import matplotlib.pyplot as plt    \n",
    "plt.style.use('default')                     \t\t\t\t\t\t\t\t\t# 画图\n",
    "plt.rcParams[\"font.sans-serif\"]=[\"SimHei\"]                          # 设置字体\n",
    "plt.rcParams[\"axes.unicode_minus\"]=False                            # 正常显示负号\n",
    "from sklearn.preprocessing import MinMaxScaler                      # 数据归一化\n",
    "\n",
    "from sklearn.model_selection import train_test_split                # 数据划分\n",
    "import seaborn as sns                                               # 画图\n",
    "from statsmodels.tsa.stattools import adfuller                      # 平稳性检验库\n",
    "\n",
    "# LSTM相关库\n",
    "from tensorflow.keras.models import Sequential                      # 序贯模型\n",
    "from tensorflow.keras.layers import LSTM, Dense, Dropout            # LSTM层和全连接层以及Dropout层\n",
    "from tensorflow.keras.optimizers import Adam\t\t\t\t\t\t# 优化器\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 一、准备序列数据\n",
    "- 创建序列：根据LSTM预测的需要，将数据处理成序列格式。通常需要为每个预测点创建一个输入序列窗口。\n",
    "- 划分数据集：将数据集分为训练集、验证集和测试集。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "####  数据导入"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "特征的形状: (18, 8)\n",
      "目标的形状: (18,)\n",
      "特征： [[21971.4 21972.3 20550.8 15003.7 16424.3   202.1  2384.5 17955.9]\n",
      " [24940.3 24940.8 23233.8 16815.2 18521.7   233.9  2884.8 20473.4]\n",
      " [28588.  28588.4 26729.1 19408.9 21267.7   271.   3351.6 23696. ]\n",
      " [32711.8 32712.4 30650.1 22229.1 24290.8   309.   4062.7 27229.3]\n",
      " [34541.4 34540.8 32403.5 23250.8 25388.6   367.3  4396.1 27900.8]\n",
      " [37032.2 37032.7 34773.9 24596.3 26854.5   421.9  4872.2 29827.8]\n",
      " [41934.5 41936.5 39366.3 28303.5 30871.8   483.2  5124.6 33319.3]\n",
      " [47000.9 47002.7 44300.2 31990.9 34691.6   571.8  5620.1 38337. ]\n",
      " [49762.6 49767.7 46866.5 33336.1 36232.2   608.4  6219.  38928.1]\n",
      " [54203.4 54204.1 51062.7 36096.2 39236.9   675.1  6989.2 42470.1]\n",
      " [57829.7 57830.5 54729.8 39148.8 42248.7   721.7  7176.1 44001.1]\n",
      " [58020.  58021.3 55032.1 38562.1 41550.    698.7  7565.2 42841.9]\n",
      " [61205.1 61204.4 58142.2 39934.  42996.9   725.6  8420.6 44370.7]\n",
      " [65914.  65914.  62718.1 42857.  46052.8   789.2  9071.6 47546. ]\n",
      " [71508.2 71509.2 68156.5 45743.2 49094.9   887.8 10057.6 50963.2]\n",
      " [74866.1 74866.3 71536.  47368.2 50698.3   991.2 10637.2 52201.5]\n",
      " [77620.2 77620.2 74386.7 49120.  52353.4  1011.1 11396.5 53302.5]\n",
      " [85200.1 85200.1 81944.  53366.2 56622.3  1132.9 12278.9 58058.7]]\n",
      "目标:  [22033.1 25002.6 28657.3 32815.5 34668.8 37146.5 42071.6 47130.2 49875.5\n",
      " 54316.4 57944.6 58145.7 61331.6 66044.5 71661.3 75034.3 77790.6 85342.5]\n"
     ]
    }
   ],
   "source": [
    "# 加载CSV数据\n",
    "# df = pd.read_csv('../ClearData/Electricity_20_ffill_date.csv')\n",
    "# df = pd.read_csv('../ClearData/Electricity_20_bfill_date.csv')\n",
    "df = pd.read_csv('../ClearData/Electricity_20_interpolate_date.csv')\n",
    "# 选择特征和目标列\n",
    "feature_columns = ['电力能源消费总量(亿千瓦小时)', '电力可供量(亿千瓦小时)', '电力终端消费量(亿千瓦小时)', '工业终端电力消费量(亿千瓦小时)', '工业电力消费总量(亿千瓦小时)', '建筑业电力消费总量(亿千瓦小时)', '居民生活电力消费总量(亿千瓦小时)','火电生产电力量(亿千瓦小时)']  # 选中的特征值\n",
    "target_column = '电力生产量(亿千瓦小时)'  # 预测目标\n",
    "\n",
    "# 提取特征和目标值\n",
    "features = df[feature_columns].values  # 将特征转化为numpy数组\n",
    "target = df[target_column].values  # 将目标转化为numpy数组\n",
    "# 打印特征和目标的形状\n",
    "print('特征的形状:', features.shape)  # 显示特征的形状\n",
    "print('目标的形状:', target.shape)  # 显示目标的形状\n",
    "# 显示特征的前5行\n",
    "print(\"特征：\",features)\n",
    "print(\"目标: \",target)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据转换和准备"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>电力生产量(亿千瓦小时)</th>\n",
       "      <th>电力能源消费总量(亿千瓦小时)</th>\n",
       "      <th>电力可供量(亿千瓦小时)</th>\n",
       "      <th>电力终端消费量(亿千瓦小时)</th>\n",
       "      <th>工业终端电力消费量(亿千瓦小时)</th>\n",
       "      <th>工业电力消费总量(亿千瓦小时)</th>\n",
       "      <th>建筑业电力消费总量(亿千瓦小时)</th>\n",
       "      <th>居民生活电力消费总量(亿千瓦小时)</th>\n",
       "      <th>火电生产电力量(亿千瓦小时)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2004-01-01</th>\n",
       "      <td>22033.1</td>\n",
       "      <td>21971.4</td>\n",
       "      <td>21972.3</td>\n",
       "      <td>20550.8</td>\n",
       "      <td>15003.7</td>\n",
       "      <td>16424.3</td>\n",
       "      <td>202.1</td>\n",
       "      <td>2384.5</td>\n",
       "      <td>17955.9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2005-01-01</th>\n",
       "      <td>25002.6</td>\n",
       "      <td>24940.3</td>\n",
       "      <td>24940.8</td>\n",
       "      <td>23233.8</td>\n",
       "      <td>16815.2</td>\n",
       "      <td>18521.7</td>\n",
       "      <td>233.9</td>\n",
       "      <td>2884.8</td>\n",
       "      <td>20473.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2006-01-01</th>\n",
       "      <td>28657.3</td>\n",
       "      <td>28588.0</td>\n",
       "      <td>28588.4</td>\n",
       "      <td>26729.1</td>\n",
       "      <td>19408.9</td>\n",
       "      <td>21267.7</td>\n",
       "      <td>271.0</td>\n",
       "      <td>3351.6</td>\n",
       "      <td>23696.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2007-01-01</th>\n",
       "      <td>32815.5</td>\n",
       "      <td>32711.8</td>\n",
       "      <td>32712.4</td>\n",
       "      <td>30650.1</td>\n",
       "      <td>22229.1</td>\n",
       "      <td>24290.8</td>\n",
       "      <td>309.0</td>\n",
       "      <td>4062.7</td>\n",
       "      <td>27229.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008-01-01</th>\n",
       "      <td>34668.8</td>\n",
       "      <td>34541.4</td>\n",
       "      <td>34540.8</td>\n",
       "      <td>32403.5</td>\n",
       "      <td>23250.8</td>\n",
       "      <td>25388.6</td>\n",
       "      <td>367.3</td>\n",
       "      <td>4396.1</td>\n",
       "      <td>27900.8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            电力生产量(亿千瓦小时)  电力能源消费总量(亿千瓦小时)  电力可供量(亿千瓦小时)  电力终端消费量(亿千瓦小时)  \\\n",
       "date                                                                      \n",
       "2004-01-01       22033.1          21971.4       21972.3         20550.8   \n",
       "2005-01-01       25002.6          24940.3       24940.8         23233.8   \n",
       "2006-01-01       28657.3          28588.0       28588.4         26729.1   \n",
       "2007-01-01       32815.5          32711.8       32712.4         30650.1   \n",
       "2008-01-01       34668.8          34541.4       34540.8         32403.5   \n",
       "\n",
       "            工业终端电力消费量(亿千瓦小时)  工业电力消费总量(亿千瓦小时)  建筑业电力消费总量(亿千瓦小时)  \\\n",
       "date                                                              \n",
       "2004-01-01           15003.7          16424.3             202.1   \n",
       "2005-01-01           16815.2          18521.7             233.9   \n",
       "2006-01-01           19408.9          21267.7             271.0   \n",
       "2007-01-01           22229.1          24290.8             309.0   \n",
       "2008-01-01           23250.8          25388.6             367.3   \n",
       "\n",
       "            居民生活电力消费总量(亿千瓦小时)  火电生产电力量(亿千瓦小时)  \n",
       "date                                           \n",
       "2004-01-01             2384.5         17955.9  \n",
       "2005-01-01             2884.8         20473.4  \n",
       "2006-01-01             3351.6         23696.0  \n",
       "2007-01-01             4062.7         27229.3  \n",
       "2008-01-01             4396.1         27900.8  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 划分训练集和测试集\n",
    "train_size = int(len(df) * 0.8)  # 训练集的大小\n",
    "test_size = len(df) - train_size  # 测试集的大小\n",
    "# df = df.fillna(0)  # 将缺失值填充为0\n",
    "univariate_df = df[['date', target_column] + feature_columns]  # 选择特征列和目标列\n",
    "univariate_df.set_index('date', inplace=True)  # 设置时间为索引\n",
    "univariate_df.head()  # 显示前5行\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "train数据的长度:  14 \n",
      "验证集的长度： 4\n"
     ]
    }
   ],
   "source": [
    "train = univariate_df.iloc[:train_size,:]  # 训练集,这里iloc是通过行号来取行数据，这里是一个划分\n",
    "\n",
    "# 指定训练集和测试集的特征和目标\n",
    "\n",
    "x_train, y_train = pd.DataFrame(univariate_df.iloc[:train_size, 1:]), pd.DataFrame(univariate_df.iloc[:train_size, 0])  # 训练集的特征和目标\n",
    "\n",
    "x_valid, y_valid = pd.DataFrame(univariate_df.iloc[train_size:, 1:]), pd.DataFrame(univariate_df.iloc[train_size:, 0])  # 测试集的特征和目标\n",
    "\n",
    "print(\"train数据的长度: \",len(train),\"\\n验证集的长度：\",len(x_valid))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    电力生产量(亿千瓦小时)\n",
      "0        22033.1\n",
      "1        25002.6\n",
      "2        28657.3\n",
      "3        32815.5\n",
      "4        34668.8\n",
      "5        37146.5\n",
      "6        42071.6\n",
      "7        47130.2\n",
      "8        49875.5\n",
      "9        54316.4\n",
      "10       57944.6\n",
      "11       58145.7\n",
      "12       61331.6\n",
      "13       66044.5\n",
      "14       71661.3\n",
      "15       75034.3\n",
      "16       77790.6\n",
      "17       85342.5\n",
      "[[-1.00000000e+00]\n",
      " [-9.53095433e-01]\n",
      " [-8.95367828e-01]\n",
      " [-8.29687219e-01]\n",
      " [-8.00413525e-01]\n",
      " [-7.61277156e-01]\n",
      " [-6.83483021e-01]\n",
      " [-6.03580195e-01]\n",
      " [-5.60216966e-01]\n",
      " [-4.90070985e-01]\n",
      " [-4.32761960e-01]\n",
      " [-4.29585496e-01]\n",
      " [-3.79262795e-01]\n",
      " [-3.04820453e-01]\n",
      " [-2.16100611e-01]\n",
      " [-1.62822582e-01]\n",
      " [-1.19285604e-01]\n",
      " [ 2.22044605e-16]]\n"
     ]
    }
   ],
   "source": [
    "# 单独将要预测的对象抽出来\n",
    "data = df.filter([target_column])\n",
    "# 将数据转换为LSTM的输入格式\n",
    "dataset = data.values  # 将数据转化为numpy数组\n",
    "# 数据归一化\n",
    "scaler = MinMaxScaler(feature_range=(-1, 0))  # 将数据归一化到0-1之间\n",
    "scaled_data = scaler.fit_transform(dataset)  # 归一化数据\n",
    "print(data)\n",
    "print(scaled_data)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集长度： 8 测试集长度:  4\n"
     ]
    }
   ],
   "source": [
    "look_back = 3  # 设置滞后项为3，从之前的来预测后面的数据\n",
    "\n",
    "# 划分训练集和测试集\n",
    "train, test = scaled_data[:train_size-look_back,:], scaled_data[train_size-look_back:,:]\n",
    "\n",
    "# 创建X和y数据\n",
    "def create_dataset(dataset, lookback=1):\n",
    "    X, y = [], []\n",
    "    for i in range(look_back, len(dataset)):\n",
    "        a = dataset[i-look_back:i, 0]  # 选中的特征列\n",
    "        X.append(a)\n",
    "        y.append(dataset[i, 0])  # 选中的目标列\n",
    "    return np.array(X), np.array(y)\n",
    "\n",
    "# 创建训练集和测试集\n",
    "X_train, y_train = create_dataset(train, look_back)\n",
    "X_test, y_test = create_dataset(test, look_back)\n",
    "\n",
    "# 将数据转换为LSTM的输入格式\n",
    "X_train = np.reshape(X_train, (X_train.shape[0],1, X_train.shape[1]))\n",
    "X_test = np.reshape(X_test, (X_test.shape[0],1, X_test.shape[1]))\n",
    "\n",
    "print(\"训练集长度：\",len(X_train), \"测试集长度: \",len(X_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[[-1.         -0.95309543 -0.89536783]]\n",
      "\n",
      " [[-0.95309543 -0.89536783 -0.82968722]]\n",
      "\n",
      " [[-0.89536783 -0.82968722 -0.80041352]]\n",
      "\n",
      " [[-0.82968722 -0.80041352 -0.76127716]]\n",
      "\n",
      " [[-0.80041352 -0.76127716 -0.68348302]]\n",
      "\n",
      " [[-0.76127716 -0.68348302 -0.6035802 ]]\n",
      "\n",
      " [[-0.68348302 -0.6035802  -0.56021697]]\n",
      "\n",
      " [[-0.6035802  -0.56021697 -0.49007098]]]\n",
      "[-0.82968722 -0.80041352 -0.76127716 -0.68348302 -0.6035802  -0.56021697\n",
      " -0.49007098 -0.43276196]\n",
      "[[[-0.4295855  -0.3792628  -0.30482045]]\n",
      "\n",
      " [[-0.3792628  -0.30482045 -0.21610061]]\n",
      "\n",
      " [[-0.30482045 -0.21610061 -0.16282258]]\n",
      "\n",
      " [[-0.21610061 -0.16282258 -0.1192856 ]]]\n",
      "[-2.16100611e-01 -1.62822582e-01 -1.19285604e-01  2.22044605e-16]\n"
     ]
    }
   ],
   "source": [
    "# 查看训练集X和Y\n",
    "print(X_train)\n",
    "print(y_train)\n",
    "# 查看测试集\n",
    "print(X_test)\n",
    "print(y_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 二、构建模型\n",
    "- 定义模型架构：创建包含LSTM层的神经网络架构。\n",
    "- 编译模型：选择合适的损失函数和优化器。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 模型建立"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "# # 创建LSTM模型\n",
    "model = Sequential()  # 创建序贯模型\n",
    "model.add(LSTM(256, return_sequences=True, input_shape = (1, 3)))\n",
    "model.add(LSTM(128, return_sequences=False))\n",
    "model.add(Dense(8))\n",
    "model.add(Dense(1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 三、训练模型\n",
    "- 转换数据类型：将特征和标签从NumPy数组转换成PyTorch张量。\n",
    "- 数据加载器：创建数据加载器来批量加载数据。\n",
    "- 模型初始化：准备模型进行训练。\n",
    "- 训练循环：通过多个epoch迭代训练数据并在每个epoch后监控验证损失来训练模型。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 训练模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/200\n",
      "8/8 [==============================] - 2s 113ms/step - loss: 0.1053 - accuracy: 0.0000e+00 - val_loss: 0.0136 - val_accuracy: 0.0000e+00\n",
      "Epoch 2/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0033 - accuracy: 0.0000e+00 - val_loss: 0.0241 - val_accuracy: 0.0000e+00\n",
      "Epoch 3/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0026 - accuracy: 0.0000e+00 - val_loss: 0.0217 - val_accuracy: 0.0000e+00\n",
      "Epoch 4/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0013 - accuracy: 0.0000e+00 - val_loss: 0.0173 - val_accuracy: 0.0000e+00\n",
      "Epoch 5/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 0.0023 - accuracy: 0.0000e+00 - val_loss: 0.0169 - val_accuracy: 0.0000e+00\n",
      "Epoch 6/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0017 - accuracy: 0.0000e+00 - val_loss: 0.0295 - val_accuracy: 0.0000e+00\n",
      "Epoch 7/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0031 - accuracy: 0.0000e+00 - val_loss: 0.0150 - val_accuracy: 0.0000e+00\n",
      "Epoch 8/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0019 - accuracy: 0.0000e+00 - val_loss: 0.0149 - val_accuracy: 0.0000e+00\n",
      "Epoch 9/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0030 - accuracy: 0.0000e+00 - val_loss: 0.0229 - val_accuracy: 0.0000e+00\n",
      "Epoch 10/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0021 - accuracy: 0.0000e+00 - val_loss: 0.0134 - val_accuracy: 0.0000e+00\n",
      "Epoch 11/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0022 - accuracy: 0.0000e+00 - val_loss: 0.0132 - val_accuracy: 0.0000e+00\n",
      "Epoch 12/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0030 - accuracy: 0.0000e+00 - val_loss: 0.0129 - val_accuracy: 0.0000e+00\n",
      "Epoch 13/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0021 - accuracy: 0.0000e+00 - val_loss: 0.0115 - val_accuracy: 0.0000e+00\n",
      "Epoch 14/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0019 - accuracy: 0.0000e+00 - val_loss: 0.0108 - val_accuracy: 0.0000e+00\n",
      "Epoch 15/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0015 - accuracy: 0.0000e+00 - val_loss: 0.0124 - val_accuracy: 0.0000e+00\n",
      "Epoch 16/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0020 - accuracy: 0.0000e+00 - val_loss: 0.0127 - val_accuracy: 0.0000e+00\n",
      "Epoch 17/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0016 - accuracy: 0.0000e+00 - val_loss: 0.0120 - val_accuracy: 0.0000e+00\n",
      "Epoch 18/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0021 - accuracy: 0.0000e+00 - val_loss: 0.0145 - val_accuracy: 0.0000e+00\n",
      "Epoch 19/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0017 - accuracy: 0.0000e+00 - val_loss: 0.0076 - val_accuracy: 0.0000e+00\n",
      "Epoch 20/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 0.0018 - accuracy: 0.0000e+00 - val_loss: 0.0073 - val_accuracy: 0.0000e+00\n",
      "Epoch 21/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0069 - val_accuracy: 0.0000e+00\n",
      "Epoch 22/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0015 - accuracy: 0.0000e+00 - val_loss: 0.0095 - val_accuracy: 0.0000e+00\n",
      "Epoch 23/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0010 - accuracy: 0.0000e+00 - val_loss: 0.0063 - val_accuracy: 0.0000e+00\n",
      "Epoch 24/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0019 - accuracy: 0.0000e+00 - val_loss: 0.0059 - val_accuracy: 0.0000e+00\n",
      "Epoch 25/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0022 - accuracy: 0.0000e+00 - val_loss: 0.0066 - val_accuracy: 0.0000e+00\n",
      "Epoch 26/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 7.2291e-04 - accuracy: 0.0000e+00 - val_loss: 0.0077 - val_accuracy: 0.0000e+00\n",
      "Epoch 27/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0015 - accuracy: 0.0000e+00 - val_loss: 0.0051 - val_accuracy: 0.0000e+00\n",
      "Epoch 28/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0051 - val_accuracy: 0.0000e+00\n",
      "Epoch 29/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0015 - accuracy: 0.0000e+00 - val_loss: 0.0039 - val_accuracy: 0.0000e+00\n",
      "Epoch 30/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0015 - accuracy: 0.0000e+00 - val_loss: 0.0040 - val_accuracy: 0.0000e+00\n",
      "Epoch 31/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0018 - accuracy: 0.0000e+00 - val_loss: 0.0059 - val_accuracy: 0.0000e+00\n",
      "Epoch 32/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 4.0628e-04 - accuracy: 0.0000e+00 - val_loss: 0.0076 - val_accuracy: 0.0000e+00\n",
      "Epoch 33/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0047 - val_accuracy: 0.0000e+00\n",
      "Epoch 34/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 2.2595e-04 - accuracy: 0.0000e+00 - val_loss: 0.0045 - val_accuracy: 0.0000e+00\n",
      "Epoch 35/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 0.0018 - accuracy: 0.0000e+00 - val_loss: 0.0047 - val_accuracy: 0.0000e+00\n",
      "Epoch 36/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 8.9972e-04 - accuracy: 0.0000e+00 - val_loss: 0.0045 - val_accuracy: 0.0000e+00\n",
      "Epoch 37/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0020 - accuracy: 0.0000e+00 - val_loss: 0.0043 - val_accuracy: 0.0000e+00\n",
      "Epoch 38/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0074 - val_accuracy: 0.0000e+00\n",
      "Epoch 39/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0043 - val_accuracy: 0.0000e+00\n",
      "Epoch 40/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 5.0820e-04 - accuracy: 0.0000e+00 - val_loss: 0.0044 - val_accuracy: 0.0000e+00\n",
      "Epoch 41/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0017 - accuracy: 0.0000e+00 - val_loss: 0.0042 - val_accuracy: 0.0000e+00\n",
      "Epoch 42/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0041 - val_accuracy: 0.0000e+00\n",
      "Epoch 43/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 0.0013 - accuracy: 0.0000e+00 - val_loss: 0.0029 - val_accuracy: 0.0000e+00\n",
      "Epoch 44/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 8.7753e-04 - accuracy: 0.0000e+00 - val_loss: 0.0070 - val_accuracy: 0.0000e+00\n",
      "Epoch 45/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0017 - accuracy: 0.0000e+00 - val_loss: 0.0071 - val_accuracy: 0.0000e+00\n",
      "Epoch 46/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0043 - val_accuracy: 0.0000e+00\n",
      "Epoch 47/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0039 - val_accuracy: 0.0000e+00\n",
      "Epoch 48/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.8631e-04 - accuracy: 0.0000e+00 - val_loss: 0.0037 - val_accuracy: 0.0000e+00\n",
      "Epoch 49/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 7.1166e-04 - accuracy: 0.0000e+00 - val_loss: 0.0032 - val_accuracy: 0.0000e+00\n",
      "Epoch 50/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 9.4998e-04 - accuracy: 0.0000e+00 - val_loss: 0.0030 - val_accuracy: 0.0000e+00\n",
      "Epoch 51/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0023 - accuracy: 0.0000e+00 - val_loss: 0.0034 - val_accuracy: 0.0000e+00\n",
      "Epoch 52/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0016 - val_accuracy: 0.0000e+00\n",
      "Epoch 53/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0039 - val_accuracy: 0.0000e+00\n",
      "Epoch 54/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.1934e-04 - accuracy: 0.0000e+00 - val_loss: 0.0032 - val_accuracy: 0.0000e+00\n",
      "Epoch 55/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0038 - val_accuracy: 0.0000e+00\n",
      "Epoch 56/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0010 - accuracy: 0.0000e+00 - val_loss: 0.0034 - val_accuracy: 0.0000e+00\n",
      "Epoch 57/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0034 - val_accuracy: 0.0000e+00\n",
      "Epoch 58/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0045 - val_accuracy: 0.0000e+00\n",
      "Epoch 59/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 4.8499e-04 - accuracy: 0.0000e+00 - val_loss: 0.0065 - val_accuracy: 0.0000e+00\n",
      "Epoch 60/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 7.5888e-04 - accuracy: 0.0000e+00 - val_loss: 0.0033 - val_accuracy: 0.0000e+00\n",
      "Epoch 61/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 4.3576e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 62/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0031 - val_accuracy: 0.0000e+00\n",
      "Epoch 63/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 7.5567e-04 - accuracy: 0.0000e+00 - val_loss: 0.0016 - val_accuracy: 0.0000e+00\n",
      "Epoch 64/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0031 - val_accuracy: 0.0000e+00\n",
      "Epoch 65/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 7.3396e-04 - accuracy: 0.0000e+00 - val_loss: 0.0034 - val_accuracy: 0.0000e+00\n",
      "Epoch 66/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0023 - val_accuracy: 0.0000e+00\n",
      "Epoch 67/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 7.0298e-04 - accuracy: 0.0000e+00 - val_loss: 0.0023 - val_accuracy: 0.0000e+00\n",
      "Epoch 68/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0015 - accuracy: 0.0000e+00 - val_loss: 0.0025 - val_accuracy: 0.0000e+00\n",
      "Epoch 69/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.9684e-04 - accuracy: 0.0000e+00 - val_loss: 0.0018 - val_accuracy: 0.0000e+00\n",
      "Epoch 70/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0024 - val_accuracy: 0.0000e+00\n",
      "Epoch 71/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0026 - val_accuracy: 0.0000e+00\n",
      "Epoch 72/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0053 - val_accuracy: 0.0000e+00\n",
      "Epoch 73/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.5993e-04 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 74/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0019 - accuracy: 0.0000e+00 - val_loss: 0.0050 - val_accuracy: 0.0000e+00\n",
      "Epoch 75/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.6372e-04 - accuracy: 0.0000e+00 - val_loss: 0.0026 - val_accuracy: 0.0000e+00\n",
      "Epoch 76/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 9.2226e-04 - accuracy: 0.0000e+00 - val_loss: 0.0024 - val_accuracy: 0.0000e+00\n",
      "Epoch 77/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0017 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 78/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 79/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 4.4757e-04 - accuracy: 0.0000e+00 - val_loss: 0.0019 - val_accuracy: 0.0000e+00\n",
      "Epoch 80/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.1981e-04 - accuracy: 0.0000e+00 - val_loss: 6.9008e-04 - val_accuracy: 0.0000e+00\n",
      "Epoch 81/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0016 - accuracy: 0.0000e+00 - val_loss: 0.0018 - val_accuracy: 0.0000e+00\n",
      "Epoch 82/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 7.1603e-04 - accuracy: 0.0000e+00 - val_loss: 8.5960e-04 - val_accuracy: 0.0000e+00\n",
      "Epoch 83/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0010 - val_accuracy: 0.0000e+00\n",
      "Epoch 84/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 2.0130e-04 - accuracy: 0.0000e+00 - val_loss: 0.0021 - val_accuracy: 0.0000e+00\n",
      "Epoch 85/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0017 - val_accuracy: 0.0000e+00\n",
      "Epoch 86/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 9.1959e-04 - accuracy: 0.0000e+00 - val_loss: 0.0016 - val_accuracy: 0.0000e+00\n",
      "Epoch 87/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0013 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 88/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 2.9418e-04 - accuracy: 0.0000e+00 - val_loss: 0.0012 - val_accuracy: 0.0000e+00\n",
      "Epoch 89/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0017 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 90/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 9.2571e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 91/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 2.6695e-04 - accuracy: 0.0000e+00 - val_loss: 0.0027 - val_accuracy: 0.0000e+00\n",
      "Epoch 92/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 93/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.1720e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 94/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0013 - val_accuracy: 0.0000e+00\n",
      "Epoch 95/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 0.0015 - accuracy: 0.0000e+00 - val_loss: 0.0035 - val_accuracy: 0.0000e+00\n",
      "Epoch 96/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.5348e-04 - accuracy: 0.0000e+00 - val_loss: 0.0016 - val_accuracy: 0.0000e+00\n",
      "Epoch 97/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 5.5570e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 98/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 9.4495e-04 - accuracy: 0.0000e+00 - val_loss: 0.0011 - val_accuracy: 0.0000e+00\n",
      "Epoch 99/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0018 - accuracy: 0.0000e+00 - val_loss: 0.0019 - val_accuracy: 0.0000e+00\n",
      "Epoch 100/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.8421e-04 - accuracy: 0.0000e+00 - val_loss: 0.0021 - val_accuracy: 0.0000e+00\n",
      "Epoch 101/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.5466e-04 - accuracy: 0.0000e+00 - val_loss: 0.0025 - val_accuracy: 0.0000e+00\n",
      "Epoch 102/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 0.0010 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 103/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 9.9219e-04 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 104/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0049 - val_accuracy: 0.0000e+00\n",
      "Epoch 105/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0017 - accuracy: 0.0000e+00 - val_loss: 0.0019 - val_accuracy: 0.0000e+00\n",
      "Epoch 106/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0036 - val_accuracy: 0.0000e+00\n",
      "Epoch 107/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 2.4679e-04 - accuracy: 0.0000e+00 - val_loss: 0.0025 - val_accuracy: 0.0000e+00\n",
      "Epoch 108/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 109/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.0732e-04 - accuracy: 0.0000e+00 - val_loss: 0.0016 - val_accuracy: 0.0000e+00\n",
      "Epoch 110/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0025 - val_accuracy: 0.0000e+00\n",
      "Epoch 111/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.4092e-04 - accuracy: 0.0000e+00 - val_loss: 0.0025 - val_accuracy: 0.0000e+00\n",
      "Epoch 112/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.7462e-04 - accuracy: 0.0000e+00 - val_loss: 0.0026 - val_accuracy: 0.0000e+00\n",
      "Epoch 113/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 8.8143e-04 - accuracy: 0.0000e+00 - val_loss: 0.0013 - val_accuracy: 0.0000e+00\n",
      "Epoch 114/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 5.5153e-04 - accuracy: 0.0000e+00 - val_loss: 0.0025 - val_accuracy: 0.0000e+00\n",
      "Epoch 115/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 7.1935e-04 - accuracy: 0.0000e+00 - val_loss: 0.0039 - val_accuracy: 0.0000e+00\n",
      "Epoch 116/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0048 - val_accuracy: 0.0000e+00\n",
      "Epoch 117/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 118/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0021 - val_accuracy: 0.0000e+00\n",
      "Epoch 119/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0026 - val_accuracy: 0.0000e+00\n",
      "Epoch 120/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.2889e-04 - accuracy: 0.0000e+00 - val_loss: 0.0046 - val_accuracy: 0.0000e+00\n",
      "Epoch 121/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0046 - val_accuracy: 0.0000e+00\n",
      "Epoch 122/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.3313e-04 - accuracy: 0.0000e+00 - val_loss: 0.0051 - val_accuracy: 0.0000e+00\n",
      "Epoch 123/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0025 - val_accuracy: 0.0000e+00\n",
      "Epoch 124/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.4536e-04 - accuracy: 0.0000e+00 - val_loss: 0.0026 - val_accuracy: 0.0000e+00\n",
      "Epoch 125/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 4.9633e-04 - accuracy: 0.0000e+00 - val_loss: 0.0025 - val_accuracy: 0.0000e+00\n",
      "Epoch 126/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0013 - accuracy: 0.0000e+00 - val_loss: 0.0026 - val_accuracy: 0.0000e+00\n",
      "Epoch 127/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0037 - val_accuracy: 0.0000e+00\n",
      "Epoch 128/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 2.5277e-04 - accuracy: 0.0000e+00 - val_loss: 0.0058 - val_accuracy: 0.0000e+00\n",
      "Epoch 129/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0055 - val_accuracy: 0.0000e+00\n",
      "Epoch 130/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 8.8287e-04 - accuracy: 0.0000e+00 - val_loss: 0.0036 - val_accuracy: 0.0000e+00\n",
      "Epoch 131/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 2.3205e-04 - accuracy: 0.0000e+00 - val_loss: 0.0024 - val_accuracy: 0.0000e+00\n",
      "Epoch 132/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0018 - accuracy: 0.0000e+00 - val_loss: 0.0027 - val_accuracy: 0.0000e+00\n",
      "Epoch 133/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 4.6231e-04 - accuracy: 0.0000e+00 - val_loss: 0.0023 - val_accuracy: 0.0000e+00\n",
      "Epoch 134/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0026 - val_accuracy: 0.0000e+00\n",
      "Epoch 135/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 1.9477e-04 - accuracy: 0.0000e+00 - val_loss: 0.0018 - val_accuracy: 0.0000e+00\n",
      "Epoch 136/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 2.1583e-04 - accuracy: 0.0000e+00 - val_loss: 0.0039 - val_accuracy: 0.0000e+00\n",
      "Epoch 137/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0013 - accuracy: 0.0000e+00 - val_loss: 0.0033 - val_accuracy: 0.0000e+00\n",
      "Epoch 138/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 8.4262e-04 - accuracy: 0.0000e+00 - val_loss: 0.0021 - val_accuracy: 0.0000e+00\n",
      "Epoch 139/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 4.4232e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 140/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0032 - val_accuracy: 0.0000e+00\n",
      "Epoch 141/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.2172e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 142/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 8.1481e-04 - accuracy: 0.0000e+00 - val_loss: 0.0013 - val_accuracy: 0.0000e+00\n",
      "Epoch 143/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0019 - val_accuracy: 0.0000e+00\n",
      "Epoch 144/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 7.9892e-04 - accuracy: 0.0000e+00 - val_loss: 0.0013 - val_accuracy: 0.0000e+00\n",
      "Epoch 145/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 9.8258e-04 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 146/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 9.2228e-04 - accuracy: 0.0000e+00 - val_loss: 0.0019 - val_accuracy: 0.0000e+00\n",
      "Epoch 147/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 8.1234e-04 - accuracy: 0.0000e+00 - val_loss: 0.0019 - val_accuracy: 0.0000e+00\n",
      "Epoch 148/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 3.8179e-04 - accuracy: 0.0000e+00 - val_loss: 0.0034 - val_accuracy: 0.0000e+00\n",
      "Epoch 149/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0014 - val_accuracy: 0.0000e+00\n",
      "Epoch 150/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 7.9034e-04 - accuracy: 0.0000e+00 - val_loss: 0.0021 - val_accuracy: 0.0000e+00\n",
      "Epoch 151/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 5.0248e-04 - accuracy: 0.0000e+00 - val_loss: 9.5747e-04 - val_accuracy: 0.0000e+00\n",
      "Epoch 152/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0035 - val_accuracy: 0.0000e+00\n",
      "Epoch 153/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 9.6178e-04 - accuracy: 0.0000e+00 - val_loss: 7.8694e-04 - val_accuracy: 0.0000e+00\n",
      "Epoch 154/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 5.3930e-04 - accuracy: 0.0000e+00 - val_loss: 0.0017 - val_accuracy: 0.0000e+00\n",
      "Epoch 155/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0010 - accuracy: 0.0000e+00 - val_loss: 0.0018 - val_accuracy: 0.0000e+00\n",
      "Epoch 156/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 8.7424e-04 - accuracy: 0.0000e+00 - val_loss: 0.0019 - val_accuracy: 0.0000e+00\n",
      "Epoch 157/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 2.6157e-04 - accuracy: 0.0000e+00 - val_loss: 7.9148e-04 - val_accuracy: 0.0000e+00\n",
      "Epoch 158/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0013 - accuracy: 0.0000e+00 - val_loss: 0.0017 - val_accuracy: 0.0000e+00\n",
      "Epoch 159/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 4.2361e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 160/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 0.0018 - accuracy: 0.0000e+00 - val_loss: 0.0011 - val_accuracy: 0.0000e+00\n",
      "Epoch 161/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 8.1055e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 162/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 4.3262e-04 - accuracy: 0.0000e+00 - val_loss: 0.0040 - val_accuracy: 0.0000e+00\n",
      "Epoch 163/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 0.0018 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 164/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.0040e-04 - accuracy: 0.0000e+00 - val_loss: 0.0024 - val_accuracy: 0.0000e+00\n",
      "Epoch 165/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 4.9584e-04 - accuracy: 0.0000e+00 - val_loss: 0.0043 - val_accuracy: 0.0000e+00\n",
      "Epoch 166/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 2.4783e-04 - accuracy: 0.0000e+00 - val_loss: 0.0019 - val_accuracy: 0.0000e+00\n",
      "Epoch 167/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 7.0705e-04 - accuracy: 0.0000e+00 - val_loss: 0.0013 - val_accuracy: 0.0000e+00\n",
      "Epoch 168/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 5.6038e-04 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 169/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 9.5290e-04 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 170/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 3.4461e-04 - accuracy: 0.0000e+00 - val_loss: 0.0013 - val_accuracy: 0.0000e+00\n",
      "Epoch 171/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 4.0262e-04 - accuracy: 0.0000e+00 - val_loss: 0.0012 - val_accuracy: 0.0000e+00\n",
      "Epoch 172/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 7.1507e-04 - accuracy: 0.0000e+00 - val_loss: 0.0015 - val_accuracy: 0.0000e+00\n",
      "Epoch 173/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 3.3396e-04 - accuracy: 0.0000e+00 - val_loss: 0.0016 - val_accuracy: 0.0000e+00\n",
      "Epoch 174/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0013 - val_accuracy: 0.0000e+00\n",
      "Epoch 175/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0012 - accuracy: 0.0000e+00 - val_loss: 0.0027 - val_accuracy: 0.0000e+00\n",
      "Epoch 176/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 1.5928e-04 - accuracy: 0.0000e+00 - val_loss: 0.0023 - val_accuracy: 0.0000e+00\n",
      "Epoch 177/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.0377e-04 - accuracy: 0.0000e+00 - val_loss: 0.0024 - val_accuracy: 0.0000e+00\n",
      "Epoch 178/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.4853e-04 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 179/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0011 - accuracy: 0.0000e+00 - val_loss: 0.0031 - val_accuracy: 0.0000e+00\n",
      "Epoch 180/200\n",
      "8/8 [==============================] - 0s 8ms/step - loss: 8.4811e-04 - accuracy: 0.0000e+00 - val_loss: 0.0019 - val_accuracy: 0.0000e+00\n",
      "Epoch 181/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.1019e-04 - accuracy: 0.0000e+00 - val_loss: 0.0033 - val_accuracy: 0.0000e+00\n",
      "Epoch 182/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 8.8008e-04 - accuracy: 0.0000e+00 - val_loss: 0.0038 - val_accuracy: 0.0000e+00\n",
      "Epoch 183/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.3633e-04 - accuracy: 0.0000e+00 - val_loss: 0.0040 - val_accuracy: 0.0000e+00\n",
      "Epoch 184/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 9.7137e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 185/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 6.6826e-04 - accuracy: 0.0000e+00 - val_loss: 0.0015 - val_accuracy: 0.0000e+00\n",
      "Epoch 186/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 8.8094e-04 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 187/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 9.3220e-04 - accuracy: 0.0000e+00 - val_loss: 0.0014 - val_accuracy: 0.0000e+00\n",
      "Epoch 188/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 8.7869e-04 - accuracy: 0.0000e+00 - val_loss: 0.0023 - val_accuracy: 0.0000e+00\n",
      "Epoch 189/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 2.9712e-04 - accuracy: 0.0000e+00 - val_loss: 0.0016 - val_accuracy: 0.0000e+00\n",
      "Epoch 190/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 191/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 5.6236e-04 - accuracy: 0.0000e+00 - val_loss: 0.0043 - val_accuracy: 0.0000e+00\n",
      "Epoch 192/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 5.6040e-04 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n",
      "Epoch 193/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 3.6438e-04 - accuracy: 0.0000e+00 - val_loss: 0.0021 - val_accuracy: 0.0000e+00\n",
      "Epoch 194/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 4.1975e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 195/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0023 - val_accuracy: 0.0000e+00\n",
      "Epoch 196/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 6.8932e-04 - accuracy: 0.0000e+00 - val_loss: 8.7152e-04 - val_accuracy: 0.0000e+00\n",
      "Epoch 197/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0014 - accuracy: 0.0000e+00 - val_loss: 0.0021 - val_accuracy: 0.0000e+00\n",
      "Epoch 198/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 0.0010 - accuracy: 0.0000e+00 - val_loss: 0.0029 - val_accuracy: 0.0000e+00\n",
      "Epoch 199/200\n",
      "8/8 [==============================] - 0s 10ms/step - loss: 4.5477e-04 - accuracy: 0.0000e+00 - val_loss: 0.0020 - val_accuracy: 0.0000e+00\n",
      "Epoch 200/200\n",
      "8/8 [==============================] - 0s 9ms/step - loss: 4.0631e-04 - accuracy: 0.0000e+00 - val_loss: 0.0022 - val_accuracy: 0.0000e+00\n"
     ]
    },
    {
     "data": {
      "image/png": "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UpLefPNNHXfccbrpppvUq1cvPfLII8rLy5PH41FSUpKWLl2qtm3bKjY2VuHh4XX+Naqs0wqCzQZhdX5VVOErgZNMGZyjwvcAAADAkSQ6OlrR0dEKCwtTTEyMEhMTJUkfffSRwsPDdd9998nhcOj222/XJZdcIklyuVwKDw+X2+1Ws2bNNH36dP/0kLi4OP9zx8fH+5+voRCAbOCskHe8luQi/wAAAGB/4TFmJKahXvsQZWRkKDMzU0lJSZIkr9ervLw8FRcXKzo6Wh988IEefvhh3XjjjRo2bJieeeYZpaamHvLr2q1Oc4BWrFihgQMHKikpSZMnTw560v/69euVnJxc5faZM2eqe/fuatKkiaZMmVKXRQkpFUd8aIUNAACAajkcpgytIT4OokLJ6XRWOt5v06aNjj32WC1ZskRLlizR0qVLtXjxYoWHhysrK0tJSUn69ddftWvXLjVr1ky33377fr++IySahgUdgNxut8aOHasBAwZowYIFSktLC6ot3qZNm3TGGWcoOzu70u2ZmZkaN26cJkyYoDlz5mjatGmaMWNGnX+BUFBxBIhGCAAAAPgjSE1N1Q8//KAdO3bohx9+0JgxY7R582bNmzdPLpdL7777rsaMGSPLsrRnzx6dcsop+uabb5Sbmyun0ymv11vl+b788ktlZGRo1qxZDfRb1SEAff3118rJydGUKVPUqVMnPfzww3rllVcO+LgzzjhDV199dZXbp02bppYtW+q+++5T586ddf/99wf1fKHI5aw4B6gBFwQAAACwyX333afNmzerQ4cOuv766xUfH6/p06friSeeULdu3fTJJ59o+vTpCgsLU9euXfXEE0/o+uuvV8eOHbVmzRo99thjlZ7v+eef15NPPqnU1FS98MILDfRb1aEL3IMPPqjff/9dX331lSQz2b9x48bau3dvrY/buHGjnE6nOnToUGnI64orrlB0dLSeffZZSdKOHTt0yimnKC0trcbncrvdcrvd/u9zc3OVkpLS4F3giks96nbfN5KklQ+OVmwkU6sAAACOdrV1LMPBsaMLXNAjQLm5uerQoYP/e4fDIZfLVaW0bX8dO3YM6vni4+OVkZFR63M98sgjSkhI8H+kpKQEu/j1ylGpCQJDQAAAAECoCjoAhYWFKTIystJtUVFRKiwsPKgX3v/5gnmuu+++Wzk5Of6PrVu3HtRr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",
      "text/plain": [
       "<Figure size 1000x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from tensorflow.keras.optimizers import RMSprop\n",
    "# 使用huber这是MSE和MAE的结合，对于较小的误差，它类似于MSE，对于较大的误差，它类似于MAE。因此，它既保留了MSE对小误差的敏感性，又保留了MAE对大误差的稳健性。\n",
    "model.compile(loss='huber', \n",
    "              optimizer=RMSprop(learning_rate=0.001), \n",
    "              metrics=['accuracy'])\n",
    "\n",
    "# 训练模型\n",
    "history = model.fit(X_train, y_train, batch_size=1, epochs=200, validation_data=(X_test, y_test))\n",
    "\n",
    "# 画出损失函数\n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.plot(history.history['loss'], label='train')\n",
    "plt.plot(history.history['val_loss'], label='test')\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 四、评估模型\n",
    "- 在验证集上评估：使用验证集来评估模型的性能，并进行调整（如调整超参数）以防止过拟合。\n",
    "- 最终测试：使用独立的测试集来评估模型的最终性能。\n",
    "- 误差分析：深入分析模型预测中的任何模式或错误。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1/1 [==============================] - 1s 675ms/step\n",
      "1/1 [==============================] - 0s 15ms/step\n",
      "Train Score: 1041.35 RMSE\n",
      "Test Score: 4226.18 RMSE\n",
      "Train Score: 0.99 R2\n",
      "Test Score: 0.30 R2\n"
     ]
    }
   ],
   "source": [
    "# 用模型做预测\n",
    "train_predict = model.predict(X_train)\n",
    "test_predict = model.predict(X_test)\n",
    "\n",
    "# 反归一化\n",
    "train_predict = scaler.inverse_transform(train_predict)\n",
    "y_train = scaler.inverse_transform([y_train])\n",
    "\n",
    "test_predict = scaler.inverse_transform(test_predict)\n",
    "y_test = scaler.inverse_transform([y_test])\n",
    "\n",
    "# 计算均方根误差\n",
    "train_score = np.sqrt(np.mean(np.power(y_train[0] - train_predict[:,0], 2)))\n",
    "print('Train Score: %.2f RMSE' % (train_score))\n",
    "test_score = np.sqrt(np.mean(np.power(y_test[0] - test_predict[:,0], 2)))\n",
    "print('Test Score: %.2f RMSE' % (test_score))\n",
    "# 计算R2\n",
    "from sklearn.metrics import r2_score\n",
    "train_score = r2_score(y_train[0], train_predict[:,0])\n",
    "print('Train Score: %.2f R2' % (train_score))\n",
    "test_score = r2_score(y_test[0], test_predict[:,0])\n",
    "print('Test Score: %.2f R2' % (test_score))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\Mark\\.conda\\envs\\tf\\lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
      "  with pd.option_context('mode.use_inf_as_na', True):\n",
      "c:\\Users\\Mark\\.conda\\envs\\tf\\lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
      "  with pd.option_context('mode.use_inf_as_na', True):\n",
      "c:\\Users\\Mark\\.conda\\envs\\tf\\lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
      "  with pd.option_context('mode.use_inf_as_na', True):\n",
      "c:\\Users\\Mark\\.conda\\envs\\tf\\lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
      "  with pd.option_context('mode.use_inf_as_na', True):\n",
      "c:\\Users\\Mark\\.conda\\envs\\tf\\lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
      "  with pd.option_context('mode.use_inf_as_na', True):\n",
      "c:\\Users\\Mark\\.conda\\envs\\tf\\lib\\site-packages\\seaborn\\_oldcore.py:1119: FutureWarning: use_inf_as_na option is deprecated and will be removed in a future version. Convert inf values to NaN before operating instead.\n",
      "  with pd.option_context('mode.use_inf_as_na', True):\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABN4AAAIxCAYAAACSM3VLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACqnElEQVR4nOzdd1zVZf/H8ffhHPZGcYCgKCiOHKk5Mne5K21ojhxlaVvL5q+0qd2Nu2VaWtJ23Kk5mubWSjTFTNEcOFFBEZBxgHO+vz9OHiMXKHhAXs/H4zxuznV9x+eLx/s+99trmAzDMAQAAAAAAACgRLm5ugAAAAAAAADgSkTwBgAAAAAAAJQCgjcAAAAAAACgFBC8AQAAAAAAAKWA4A0AAAAAAAAoBQRvAAAAAAAAQCkgeAMAAAAAAABKAcEbAAAAAAAAUAoI3gAAAFAkNpvN1SUAAACUKwRvAAAApaxbt25asGDBRZ3766+/qnPnzvr999+LfE5+fn6h99u3b1e1atW0ZMmSi6pBkr755hsFBAQoMTHxoq9RluXn5ys1NVWGYbi6FAAAcAWxuLoAAACAK92aNWt0++23X9S5+fn5WrZs2Rlh2vkMGDBAeXl5mjt3rtzd3eXu7q4jR47Iza1o/+aan58vu90uT09PZ9vVV1+t7OxsLV++XLGxsc72goICWa1W+fr6FrrG119/rYcffliVK1c+530KCgqUmpqqvXv3FrrXueTm5ionJ0eenp5nPEteXp4kKSAgQJI0YsQIRURE6LnnnlNOTo6SkpLOuF7t2rXl4+MjSVqxYoWuv/565ebmFqkWAACAoiB4AwAAKGVms1lms/miznV3d5ckZ0BUFGvXrtXNN9/sPPdUSFXU4O2LL77Q8OHDz9o3evRojR49+oz2f48UMwxDXl5e2rRp0znvs2nTJjVr1kweHh6F2ocOHaoFCxbIw8NDJpNJkhQREaEHHnhAI0eOlKenp2w2m3Jzc51Bm9Vq1fXXX+8cWditWzfdfffd+uWXXzR27Fj17t1bNWrUcN5j79692rBhg66++mpJcoZthG4AAKAkEbwBAACUkDVr1qhdu3Zn7Rs+fPgZYdaDDz6od955x/k+NzdXJpNJ7u7uZ4RkFkvRvratW7dOhw8f1kMPPXTe4+x2u6xWq8xm8xnBV79+/dSxY0d5eHhoxYoVqlq1qho0aFDomGnTpql169aKjY1Vbm7uGdd3c3PTvn37Co2O+zer1So3NzdnuHbKa6+9ppdeekmenp5KTExUr169NHr0aA0dOlRDhw6VJL333nuaPn36OYO9/v37q3HjxkpISJCvr69q1KhRaNSbyWSSh4eH+vfvr9DQUA0YMOB8vy4AAICLQvAGAABQQk4FWLNnz1abNm2c7Q0bNtSECRN02223Odv69et3xuiqBx54QB999NFZr/3v4OuUNm3aaO3atc73n3322TmP79Sp0xltr732mh577LFCbQEBAQoICJDVatVjjz2mOnXqaOXKlc5+u92ud955R999912he/9TXl6egoOD9eSTT561X5L27dun8ePHy2azFRoRWKVKFcXFxenAgQP64osv9NJLL2nEiBGFzt2xY4eaNm16zmsbhqH69eurfv36Wr16tSQpLS1Nd955pyZOnOg8zsvLi1FuAACg1LC5AgAAQAk5NUotNDRUNWrUcL5MJpOCg4MLtXl4eJwxqu3ll1/Wnj17dODAASUnJys5OVnTpk2T5JiWeart1KtFixaqVKmS8/xjx44pLi5O77//fqHj1q1bJ8mx7tqptgMHDmjXrl266667zvk8np6eeumll7Rq1SotXrzY2b506VKlpqbqtddeO+Oc3NxcFRQUqHXr1nr77bfl5eV1zlfdunX11VdfOc/753TVtm3b6tNPP5XVatV9993nbK9Xr57c3d314YcfaubMmc7gzGQy6dChQ5KkzZs3O0e7/ft5Fi1apJMnTzrbTCbTGSPuAAAASgoj3gAAAErIqSAtJyenULgjOaZV/rPNbrefEfhUrVr1jGtmZWXJw8NDV1111Vk3FAgODna+f/nll2UYhoYMGSI/Pz9n+6mpoCEhIapWrdoFnyM7O1vZ2dmSHGulDRw4UGFhYUpNTZUkTZ06Vddcc43q1aun1NRUFRQUyNfXV/7+/rr77rs1d+5c+fr6KjAw8IJTZAsKCnT//fcrKytL27dvV82aNZWdna3o6GitWrVKL7/8sgoKCpzr1Xl5eWnatGkaNmyY1q9fr6ioKGVmZioqKkre3t6SpJiYGDVt2lTXXnutvv76a+fGD6eu4e/vf8HfAQAAQEkgeAMAAChhPXv2PKNt1KhRGjVqVKG29u3bX/BaW7ZsUUxMzFk3RsjMzHQGb9nZ2dq+ffsZodvFeP311zV+/PhCbV9++eUZx4WGhjp/njZtmu6++259/vnnkqQNGzYoPj6+SPcbMGCAgoKCnO9DQkKUl5cnk8kkwzD0/vvvy2azacKECc7wTHJMnZ06daquvfZaSaeDNW9vb3322Wd68sknFRUVpaNHjxa6n5eXV5HqAgAAuFRMNQUAACghp0awLVu2TIZhOF+BgYGaMWNGobZrr732jJ1Az2bVqlVq3br1WfsyMjKcwZuPj48WL16syZMn6+jRo0pISFBiYqISExO1a9cuSY411U61bd68WcnJyWe9rsViUWxsrFJSUor0Sk5OPmNzgp9++kmvvvpqoamlb731ltasWeN8f/LkSY0ePVonTpwodG56errsdrveeOMNde7cWbm5ufLz81PHjh0LHZeTk6OYmJhz/u4mTZqkqKgo2e12SVJKSookOUO+ovz+AQAALgUj3gAAAEpIcYMcm8123v5169Zp+/bteuONN87an56eXmiqqeSY7jpnzhw9+uijzpFdp4Kn++67TxaLRYZhKD8/X+PHj9cTTzxxxnVPnDihypUrq3LlysV6nn/y8PBQcnKyXnrpJWfbwYMHdezYMf3yyy+SHNNMpTN3bP33ZgdHjx7V9ddfXyiAzMrKks1mU1hYmPM6/7ZkyRI98cQT+r//+z/n/T09PZ3r4lmt1ot+PgAAgKIgeAMAACghpwKus+0eOnz4cA0fPrxQ29VXX33OaxmGoSeeeEIxMTHq3r37Gf0nTpxQQUGBQkJCzui7//77df/99zvfJyUlKSoqSosWLTpj1NjZHD16VFWqVLngcedjtVpVvXp1Z+glOUagtWzZUl26dJEkpaamaty4cecMzk4JCwvT3LlzJZ3+HW/dulXe3t4KCwvTvn37JEn5+fmFzps8ebI8PDxUv3593XPPPVq5cqUiIyMlSS+++KKqVasmm82mvLy8S3pWAACAcyF4AwAAKCGnRrB9/fXXatu2rbO9Xr16euGFF9S/f/9Cx/v4+JzzWuPHj9fy5cu1YMECmc3mM/oPHz4sSUXaLKG4Nm7ceMbU0eLq3r27QkNDC4VqhmHIbrc724KCgjRt2rRC67tdyKlRavPnz1erVq0KrX13ahMJSdq/f78WLlyob775RrGxsXr66afVoUMHde/eXdOmTdOTTz4pi8UiDw+PQuvGAQAAlCSCNwAAgBJStWpVPfPMM2rWrFmhQMxkMikwMPCsIdnPP/+s2rVrKyoqSpJjRNf48eP10ksvaezYserTp89Z73Vquuap80rKli1btHnzZk2dOvWSrjNgwADZ7fZCoeH+/fuVnp6uDRs2SHIEcVarVenp6Xr00UeLdN333ntPJpNJDz30kN5//30tWLBATZs21bZt2wpt9vD888/rqquuUq9evSRJq1ev1sqVK3X//ffr3nvv1ebNm/Xuu+/qo48+cvYDAACUNII3AACAElKzZs1Ca5qdYjKZzjmdcc6cOfrqq690/Phx7dixQ/fdd5+WL1+uRx55RK+//nqhY1evXq0PPvhAKSkpWrp0qWJiYhQdHe3sP3jwoFJSUuTp6enc6OFUu3R6c4VTTq31FhwcrIiICEnSY489pmbNmqlNmzYX/4uQY4OJ4OBgeXt7O9s6duyoW2+9VQ888ICzLS8vzzl99BSr1aqcnBzt27fvjFGBnp6euuOOO3TLLbdo8ODBevHFFzVy5EhNmDBB9erVkyStXbtWM2bM0CeffCLJMRLukUceUffu3XX77bfL19dXvXv3Vs+ePdWjRw9nHQAAACXNZLCdEwAAQKlq1KiRKlWqpLffftu54YEkJScna9CgQbr22msVFxenzp07a9u2bXr33Xc1dOjQM65z8uRJVapUSdWrV9d1112np59+WvXr13f2P//883rllVfk6elZaArmudjtdlmtVt13333673//q5kzZ2rQoEH67rvvdMMNN1zUsy5dulS33nqrgoODz5jCefz4cXl5eZ0RpmVlZckwDB04cECS4/fSsGFDRUZG6s0331Tnzp2VkpKie++9V0uWLNGECRM0duxY5/mJiYnq27evmjRpopkzZ2revHl64okntGXLFrm7u+uOO+7Q4sWLtWHDBtWtW1eSdMcdd8hkMunLL7/U+PHjFRcXp9zcXB05cuSinhsAAOBsCN4AAABK2dy5czVmzBilp6cXajeZTKpRo4a+/PJLXXXVVcrIyFBaWppq1qx5zmsVFBScsQtoSbHb7fruu++c0zPLmuXLlysmJkbh4eFn9GVmZur48ePO311ubq4z5FyyZIlyc3PVu3dv5/FpaWny9/eXxWLRd999p5UrV2rw4MFq2LDh5XkYAABQIRC8AQAAAAAAAKXgwnMQAAAAAAAAABQbwRsAAAAAAABQCgjeAAAAXOizzz5TdHS0QkJCNGrUKOXm5hb7GnPnztXQoUM1aNAgff7556Vyj7IiLi5OtWrVcnUZ5d6OHTt0/fXXy9/fX61bt9aWLVuKdf7x48d1zz33qEqVKvLz81P//v116NChQsdMnz5dDRs2lKenp5o2barFixeX5CMAAFAuELwBAFDBJCUlacKECeX+HleCefPm6c4771T37t311VdfadOmTRozZkyxrvHqq6/qrrvuUuXKlRUSEqIRI0bo6aefLtF7FMWJEyc0YcIEnThxosSv/U99+vTRwoULS/UeV7qMjAx17dpVR48e1axZs9SxY0ddf/31Rf6zs9ls6tGjh3755RfNmDFDs2fP1rZt29SpUydlZ2dLkt5991098MADuvvuu7V06VK1bdtWN954o3788cdSfDIAAMoeNlcAAKCCWb58uTp16qTS/ApwOe5xJWjQoIFq1aqlb7/9VpK0a9cuxcbG6sCBA6pateoFzz906JCioqL0448/qkOHDpKkl19+Wa+//rqOHz8uk8l0yfcoqqSkJEVFRWnPnj2MSCvj/vOf/+j//u//tHv3btWoUUOS1KFDB/Xu3Vvjxo274PnffvutevXqpW3btik2NlaStHPnTsXExOiLL77QgAEDFB4erqFDh2rSpEnO89q1aycfHx/CNwBAhcKINwAAABc4dOiQtm3bpkGDBjnb6tSpowYNGmjp0qVFuoZhGPr444+doZskhYWFKTc3VyaTqUTugSvPkiVL1KFDB2foJkk333yzlixZUqTz169fr4iICGfoJknR0dGyWCxKSkrSgQMHdPjwYd1www2Fzqtfv76SkpJK5BkAACgvCN4AAKggJkyYIJPJpE6dOkmSTCaTTCaThg0bVui42bNnq1GjRvL29lazZs30888/F+pfsWKFWrVqJV9fX1WvXl3jxo2TzWYr1j0uZPPmzerSpYsCAgIUGhqqESNGKCsry9lvt9v18ssvq0aNGvL391eHDh20YcOGQteIj49Xu3bt5OXlpdq1a+vDDz8s1H9qrTCr1aqnn35aNWvW1IwZMwodM3nyZNWpU0e+vr5q166dNm7ceEaty5cvl8lk0qZNm4r1jKfWw2rcuHGh9sjISP31119FukZ4eHihUC0jI0NTpkzRLbfcUmL3uJC4uDiZTCZFRUVJkqKiomQymdSxY8dCx3Xs2FETJkzQtm3b1KdPHwUFBTk/N5J05MgRDRgwQJUqVVJISIhuv/12paamnvV+ZxtRN2zYMA0bNkwLFy5U/fr15evrqx49epz1GuditVr18MMPKywsTL6+vmrTpo3WrVtX6JhVq1apVatW8vLyUnR0tN55551C/SdPntSoUaMUEhKiwMBADRs2TGlpaYWOMZlMWr58uRYtWqRWrVqdEVBt2rRJnTt3lre3t2rXrq233nrrrPXWqlVLjzzySJGf75RDhw5d0mfCbDYrPT1d+fn5zrbt27eroKBANWrUkNlslqQzfvd//vlnobAPAICKgOANAIAK4p577lF8fLymTp0qyRFMxcfHF1qLbenSpRowYIBuvfVW/fDDD2rdurV69OihxMRESVJmZqZ69+6tGjVq6LvvvtPEiRM1depUTZs2rcj3KIqbbrpJ+fn5+uabbzR58mT98MMPevHFF539Tz31lF5++WU99thjWrhwoUJCQtStWzcdO3ZMkpSYmKhOnTqpUqVKWrRokYYNG6b77rtP77333hn3uu2227Ry5UqNHTtWrVq1crZ//PHHGjNmjB555BF9++23qlKlijp37uy8xynNmzdXfHy86tWrV6xnzMnJkSQFBwcXavf29lZKSkqxriVJ9913n3PU0fvvv18q9zibPn36KD4+XgsWLJAkLViwQPHx8frggw/OOHb37t3OkVYvvfSS3NxOfxUdMmSIfv31V3322WeaOXOmtm7dqieeeKJYtaxfv16jR4/WM888oxkzZmjt2rWFpjpeyMSJE/XRRx/p9ddf1zfffKPw8HDddNNNzinTmzZt0vXXX++cuvvggw9q7NixiouLc17j5ptv1sKFCzV58mR9/PHHWrlypbp3714oZJSkOXPm6O6771a3bt00atQoZ/uxY8fUpUsXhYSE6Pvvv9fYsWP12GOP6aOPPjqj3oULF+rRRx8t1u9IcnwuLuUz0b59e2VkZOipp56SzWZTRkaGHnjgAbm7u6tnz54KCwtTdHS0nn/+eWf4O2XKFP3yyy+6+eabi10vAADlmgEAACqUZcuWGef6CtChQwfjpptucr632WxG5cqVjeeee84wDMPYs2ePIcmYOXOm85jVq1cbW7ZsKfI9LiQ/P9+wWCzGpEmTnG2///67sW7dOsMwDCMzM9Pw9PQ0nn/+eWf/oUOHjFtuucX4/fffDcMwjKFDhxq1atUyrFar85j77rvP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Hn30UVWuXFnBwcF6+OGHS+zPFwAAAACA80pPd+xSeip0GztW+v57QreLwIi3Epadny2/iX4uuffJp07K18P3kq5x4sQJ9ejRQw899JDmzJmje+65R48++qimT5+ukydPavjw4frss8/Upk0bPfDAA3r99dc1ceJExcfHy2azKTg4WAkJCYqMjJSvb/FqKSgo0DvvvKM6deooIiLC2f7ss8+qXr16+uqrr1SnTh1J0qpVqzRy5EjNnTtXNWvWVI8ePdSgQQMNHjxYU6ZM0cKFC7V8+XLt27dPt956q+64444L3n/mzJmaNGmS5syZoypVqqhv376aPHmyHnnkER05ckR79+5VkyZNlJaWJknOEYPn8/XXX+v555/X7NmzFRAQoP79+ysoKEiPPPKIJOmDDz7Q8OHDtWXLFg0bNkwTJ07Up59+qh9++EEzZszQsmXLZLFY1KNHD/Xs2VPdunUr1u8UAAAAAIBi2b7dEbpt3y55ekrTpklDhri6qnKL4A2FLFq0SO7u7nr22WdlMpk0ZswYDfn7L5jZbJa7u7usVquqVKmiBQsWOEdh/TOECggIKNb01cWLFysoKEhZWVmqVauWvvzyy0JrqQUGBiouLq7QOZ988on69u2rXr16SZIGDx6sBQsWaPDgwZo3b54eeOABNWnSRE2aNNHNN99cpDo+/vhjjRkzRtddd50kx+i+goICZw0BAQGSijc198MPP9Qjjzyijh07SpKef/55vfDCC87grUaNGnr11VclOdbe++qrryRJ3t7estvtslqtatSo0QXXlwMAAAAA4JItWiQNGiRlZEg1akjz5kktWri6qnKN4K2E+bj76ORTJ11270t18OBBpaSkKDg4WJJkt9uVmZmp3NxceXt7a86cOXrllVd0//3369prr9XkyZMVHR19Sffs1KmTPvzwQ/n5+aly5cpn9D/44INnrXPZsmXOECwvL0+NGzeWJCUnJxcaMVe7dm0lJydfsI4DBw6oVq1azvdXX311MZ/kTPv371ft2rUL1bJ//37n+1OBnORYe+9UkNmhQwc9/fTTGj58uA4dOqRbb71Vb731VrFHEQIAAAAAcEF2u2OX0ueekwxDuu46ac4cqWpVV1dW7hG8lTCTyXTJ0z1dqUaNGmrRooVzfTbDMJSeni53d3cdO3ZMwcHBWrNmjbKysjRq1CiNGTNGCxcudJ5vMpmKvRaZj49PocDr384WNtWoUUOjRo1yjhzLz893rp1WpUoVHTp0yHnsvn375O7ufsE6IiIitGfPHuf7L774QsuWLdP06dMlSW5ujiURDcMo8uizyMhI7d692/l+165dioyMdL4/NYru33bu3Kk+ffro8ccf18GDB9W9e3dNnTpVjz76aJHuCwAAAABAkZw8KQ0dKs2d63h/333Sf/8reXi4tq4rBJsroJBevXpp7969Wrduncxms2bOnKnu3bvLMAylpqaqS5cu+v7775WRkSE3Nzdn2HVKdHS0Fi9erIMHD2rlypWlVuedd96pb775RocPH1ZBQYGeeeYZPfPMM5Kkm266SZMnT9Yff/yh77//XnNP/ZfHBQwfPlxvvfWWVq9ercTERL322mvONeUkqXr16vL19dXChQu1d+/eMzZXOJt77rlHb731llasWKGNGzdqwoQJGjVq1AXPW7p0qW655RZt3LhReXl5MplMZ/yuAQAAAAC4JLt2SW3aOEI3d3fHem6TJxO6lSBGvKGQoKAgLViwQA888IC2bNmihg0basGCBbJYLKpXr57eeOMNjR49WocPH1aTJk300UcfFTp/6tSpuueeezRu3Dj169dP7du3L5U6r7vuOk2YMEFDhgzR4cOH1aVLF3344YeSHFNTd+3apfbt26t27dpFXuNtwIABSk5O1h133KHc3FwNGjRIjz32mLPf3d1d06dP1+jRo3XixAk9+OCDat269Xmv2a9fPx06dEh33nmn8vLydO+995516uy/DR8+XL///ru6deumnJwc3XDDDRo9enSRngMAAAAAgAv66Sepf38pLU2qXl36+mtHCIcSZTKKOy+wAsrIyFBgYKDS09PPmBqYm5urPXv2KCoqSl5eXi6qEBUZn0EAAAAAQJEZhvTGG9ITTzjWdmvVyjHiLSzM1ZWVG+fLif6NqaYAAAAAAAAVQXa2NHiwNG6cI3QbMUJasYLQrRQx1RQAAAAAAOBKt3ev1LevtHGjZLFIb73l2EihiJsH4uIQvAEAAAAAAFzJli+XbrtNSk2VQkOlOXOkDh1cXVWFwFRTAAAAAACAK5FhSO+9J3Xt6gjdmjWT1q8ndLuMCN4AAAAAAACuNLm50l13SQ8+KNls0sCB0urVUmSkqyurUJhqCgAAAAAAcCU5eFC65Rbpt98kNzfpP/+Rxo5lPTcXIHgDAAAAAAC4Uqxd6wjdDh+WgoOlWbOk6693dVUVFlNNAQAAAAAArgTTpkkdOzpCt0aNHOu5Ebq5FMFbBRQXFyeTyXTGa/ny5S6r6dlnn1XdunVddv9/iouLU8eOHV1dBgAAAAAARZOXJ913n3TPPVJ+vmPE2y+/SLVru7qyCo/grQIaOHCg0tLStHLlSklSWlqa0tLS1K5du0u+tslkUlJSUrHP+/HHH/XXX39p7969l+V+AAAAAABcEY4ckbp0kaZMcazh9vLL0pw5kp+fqyuDXBi8ffbZZ4qMjJSfn5+6du3qDE+2bNmili1bKjg4WOPGjZNhGM5zSqOvIvLw8FBQUJD8/f0lSUFBQQoKCpLF4pol/9LS0rRp0ya1a9dOP/30k0tqAAAAAACg3Fm/Xmre3LFbaUCAtHCh9PTTbKJQhrgkeNu1a5eeeeYZzZ8/X1u3blXNmjU1bNgwWa1W9enTR82bN9f69eu1detWxcXFSVKp9JUKw5CyslzzKqFAMT4+Xq1atVJgYKD69eun9PR0Z9/nn3+uWrVqydfXVz169NCxY8ckSbGxsTL9/Rc7KipKJpNJM2fOLNL9fv75Z9WvX1/du3c/I3j76quvFBMTo8DAQA0YMMBZy/nuN2HCBA0bNsx5jeXLl6tWrVrO91OnTlVERIT8/f118803KzMzs0h1vv7666pevboCAgJ0xx13yGq1Fuk8AAAAAABK3KefSu3aOXYwrVdPWrdO6tXL1VXhX1wSvG3cuFGtW7fW1VdfrcjISA0fPlw7duzQd999p/T0dL355puqU6eOXnnlFX300UeSVCp9pSI72zGc0xWv7OxLLv/EiRPq0aOHevXqpT/++EPZ2dl69NFHJUknT57U8OHDNWnSJG3dulUWi0Wvv/66JEdYl5aWJklKSEhQWlqabrnlliLd88cff1SbNm3Upk0b/fzzz7Lb7ZKkX375RSNHjtSbb76phIQEHTlyROPHj7+k+/3xxx964IEHNGPGDG3btk1Hjx7V+++/f8HzEhMT9eSTT2rWrFn6/ffftXPnztINcAEAAAAAOJuCAmnMGGnoUMlqlfr0kX77zRG+ocxxydzCBg0aaOnSpdq4caNq166tyZMn6/rrr1dCQoJat24tHx8fSVLjxo21detWSSqVvnOxWq2FRjNlZGSU4NOXbYsWLZK7u7ueffZZmUwmjRkzRkOGDJEkmc1mubu7y2q1qkqVKlqwYIFz2u6paauSFBAQoKCgoCLf86efftKECRPUqlUrnThxQr///rtatGihGTNmaMiQIerTp48kx0i1Q4cOXdL9YmJidPjwYbm7u2vdunUyDEM7duy44HleXl6SHJ+NyMhI/fbbb0V+PgAAAAAASkRqqtS/v7R0qeP9s89KEyZIbizhX1a55E+mQYMGuvXWW3X11VcrKChIv/32m15//XVlZGQoKirKeZzJZJLZbFZaWlqp9J3LxIkTFRgY6HxFREQU/eF8fKSTJ13z+jtcvBQHDx5USkqKgoODFRQUpNtuu00pKSnKzc2Vt7e35syZow8//FChoaHq3r27du/efUn3++uvv5SUlKT7779f4eHhstvtzummBw4cKDRFtF69eurUqVOx75H9j5GAOTk5uvvuu1WrVi1NnDhRFotFNpvtgteoVauWpk+frieffFKVKlVS//79lZqaWuxaAAAAAAC4KAkJUsuWjtDN11f6+mvphRcI3co4l/zp/Prrr1q4cKF+++03ZWZm6o477lDPnj1lsVjk6elZ6FgvLy9lZ2eXSt+5PPXUU0pPT3e+9u/fX/SHM5kcfwFc8SqBxRNr1KihFi1aaNOmTdq0aZMSEhK0ceNGubu769ixYwoODtaaNWt05MgRValSRWPGjPnX45uKtXnFTz/9pFq1amnLli3atGmTRo8e7QzeIiIitGfPHuexy5YtU48ePS54P5PJVChMW79+vfPnt99+WykpKTpy5IiWLl2qNm3aFKnOAwcOqHHjxtqwYYP27duntLQ0vfjii0V+TgAAAAAALtqsWVKbNlJSklSnjvTrr1K/fq6uCkXgkuBt1qxZGjBggK655hr5+fnppZde0u7duxUSEqKUlJRCx2ZmZsrDw6NU+s7F09NTAQEBhV4VRa9evbR3716tW7dOZrNZM2fOVPfu3WUYhlJTU9WlSxd9//33ysjIkJubm3M9tlOio6O1ePFiHTx4UCtXrrzg/X788Ud17dpVtWrVUq1atXTjjTdqzZo1ys7O1vDhw/X5559r0aJF2rNnjyZOnKjIyMgL3q9GjRqKj4+X1WrVjh07NG3aNOfxJ0+edD7Ll19+qSlTphQpKNy6dat69OihNWvWKCsrSyaT6YxnBwAAAACgRNls0pNPSgMGSDk50g03SPHx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",
      "text/plain": [
       "<Figure size 1500x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画出预测结果\n",
    "x_train_ticks = univariate_df.head(train_size).index\n",
    "x_test_ticks = univariate_df.tail(test_size).index\n",
    "y_train = univariate_df.head(train_size)[target_column]\n",
    "\n",
    "f, ax = plt.subplots(1)\n",
    "f.set_figheight(6)\n",
    "f.set_figwidth(15)\n",
    "\n",
    "sns.lineplot(x=x_train_ticks, y=y_train, ax=ax, label='Train')\n",
    "sns.lineplot(x=x_test_ticks, y=test_predict[:,0], ax=ax, color = 'green', label='Test Predictions')\n",
    "sns.lineplot(x=x_test_ticks, y=y_test[0], ax=ax, color = 'red', label='Test Actuals')\n",
    "\n",
    "# 设置标题，显示电力生产量预测并换行显示R2和RMSE\n",
    "plt.title('电力生产量预测\\ntest_score: %.2f, train_score: %.2f' % (test_score, train_score))\n",
    "plt.xlabel('时间')\n",
    "plt.ylabel('电力生产量(亿千瓦小时)')\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "PL",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.18"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
